feat: implement Remote STS Account provisioning #470
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR changes/adds
This PR adds a
RemoteStsAccountService
which can be used in cases where the STS runs as standalone application. It uses the STS Account API to manage accounts.Note that the
StsAccountProvisioner
was split up, so that the business logic remains the same, while STS accounts are managed "locally" (embedded) or "remotely" (using the STS Account API).These services are implemented in a separate extension modules
sts-account-service-local
andsts-account-service-remote
. If neither of these modules are on the runtime classpath then a NOOP service is used and a warning is logged.The
RemoteStsAccountService
assumes that authentication against the STS Accounts API is done by adding a particular header, e.g.Authorization: XYZ
orx-api-key: XYZ
(default).Two new test runtimes have been added:
:e2e-tests:runtimes:sts
: a minimal, standalone STS runtime:e2e-tests:runtimes:identityhub-remote-sts
: an IdentityHub that does not contain the STS but instead uses theRemoteStsAccountService
Why it does that
feature parity with standalone STS
Further notes
RemoteStsAccountService
-> STS Accounts API is currently only possible using static tokens.Linked Issue(s)
Closes #467
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.